From a334316d5e190f8b56ae9eec6e6b9b81968077d5 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 29 Oct 2016 03:25:06 +0200 Subject: [PATCH] API: widget: Remove GtkWidget::composited-changed signal Nobody uses it. If you need the functionality, listen to display changes on your widget and then connect to the display's notify::composited. --- gtk/gtkwidget.c | 38 -------------------------------------- gtk/gtkwidget.h | 4 ---- gtk/gtkwidgetprivate.h | 1 - gtk/gtkwindow.c | 31 +++---------------------------- tests/testgtk.c | 12 +++++++----- 5 files changed, 10 insertions(+), 76 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 430c0f9768..6a19227b7b 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -551,7 +551,6 @@ enum { ACCEL_CLOSURES_CHANGED, SCREEN_CHANGED, CAN_ACTIVATE_ACCEL, - COMPOSITED_CHANGED, QUERY_TOOLTIP, DRAG_FAILED, STYLE_UPDATED, @@ -2109,23 +2108,6 @@ gtk_widget_class_init (GtkWidgetClass *klass) g_signal_set_va_marshaller (widget_signals[MOTION_NOTIFY_EVENT], G_TYPE_FROM_CLASS (klass), _gtk_marshal_BOOLEAN__BOXEDv); - /** - * GtkWidget::composited-changed: - * @widget: the object on which the signal is emitted - * - * The ::composited-changed signal is emitted when the composited - * status of @widgets screen changes. - * See gdk_screen_is_composited(). - */ - widget_signals[COMPOSITED_CHANGED] = - g_signal_new (I_("composited-changed"), - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (GtkWidgetClass, composited_changed), - NULL, NULL, - NULL, - G_TYPE_NONE, 0); - /** * GtkWidget::delete-event: * @widget: the object which received the signal @@ -8886,26 +8868,6 @@ gtk_widget_is_composited (GtkWidget *widget) return gdk_screen_is_composited (screen); } -static void -propagate_composited_changed (GtkWidget *widget, - gpointer dummy) -{ - if (GTK_IS_CONTAINER (widget)) - { - gtk_container_forall (GTK_CONTAINER (widget), - propagate_composited_changed, - NULL); - } - - g_signal_emit (widget, widget_signals[COMPOSITED_CHANGED], 0); -} - -void -_gtk_widget_propagate_composited_changed (GtkWidget *widget) -{ - propagate_composited_changed (widget, NULL); -} - /** * _gtk_widget_propagate_screen_changed: * @widget: a #GtkWidget diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index 8b93b85866..20464576eb 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -289,8 +289,6 @@ struct _GtkWidget * @can_activate_accel: Signal allows applications and derived widgets * to override the default GtkWidget handling for determining whether * an accelerator can be activated. - * @composited_changed: Signal emitted when the composited status of - * widgets screen changes. See gdk_screen_is_composited(). * @query_tooltip: Signal emitted when “has-tooltip” is %TRUE and the * hover timeout has expired with the cursor hovering “above” * widget; or emitted when widget got focus in keyboard mode. @@ -525,8 +523,6 @@ struct _GtkWidgetClass guint signal_id); - void (* composited_changed) (GtkWidget *widget); - gboolean (* query_tooltip) (GtkWidget *widget, gint x, gint y, diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h index b4b28fc9f0..fe7e05aada 100644 --- a/gtk/gtkwidgetprivate.h +++ b/gtk/gtkwidgetprivate.h @@ -213,7 +213,6 @@ void _gtk_widget_propagate_hierarchy_changed (GtkWidget *widget, GtkWidget *previous_toplevel); void _gtk_widget_propagate_screen_changed (GtkWidget *widget, GdkScreen *previous_screen); -void _gtk_widget_propagate_composited_changed (GtkWidget *widget); void _gtk_widget_set_device_window (GtkWidget *widget, GdkDevice *device, diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 81435f515b..18f74cc265 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -506,8 +506,6 @@ static void get_shadow_width (GtkWindow *window, static GtkKeyHash *gtk_window_get_key_hash (GtkWindow *window); static void gtk_window_free_key_hash (GtkWindow *window); -static void gtk_window_on_composited_changed (GdkScreen *screen, - GtkWindow *window); #ifdef GDK_WINDOWING_X11 static void gtk_window_on_theme_variant_changed (GtkSettings *settings, GParamSpec *pspec, @@ -1694,10 +1692,6 @@ gtk_window_init (GtkWindow *window) toplevel_list = g_slist_prepend (toplevel_list, window); gtk_window_update_debugging (); - if (priv->screen) - g_signal_connect_object (priv->screen, "composited-changed", - G_CALLBACK (gtk_window_on_composited_changed), window, 0); - #ifdef GDK_WINDOWING_X11 g_signal_connect_object (gtk_settings_get_for_screen (priv->screen), "notify::gtk-application-prefer-dark-theme", @@ -5723,16 +5717,14 @@ gtk_window_finalize (GObject *object) priv->delete_event_handler = 0; } +#ifdef GDK_WINDOWING_X11 if (priv->screen) { - g_signal_handlers_disconnect_by_func (priv->screen, - gtk_window_on_composited_changed, window); -#ifdef GDK_WINDOWING_X11 g_signal_handlers_disconnect_by_func (gtk_settings_get_for_screen (priv->screen), gtk_window_on_theme_variant_changed, window); -#endif } +#endif g_free (priv->startup_id); @@ -10213,25 +10205,18 @@ gtk_window_set_screen (GtkWindow *window, priv->screen = screen; if (screen != previous_screen) { +#ifdef GDK_WINDOWING_X11 if (previous_screen) { - g_signal_handlers_disconnect_by_func (previous_screen, - gtk_window_on_composited_changed, window); -#ifdef GDK_WINDOWING_X11 g_signal_handlers_disconnect_by_func (gtk_settings_get_for_screen (previous_screen), gtk_window_on_theme_variant_changed, window); -#endif } - g_signal_connect (screen, "composited-changed", - G_CALLBACK (gtk_window_on_composited_changed), window); -#ifdef GDK_WINDOWING_X11 g_signal_connect (gtk_settings_get_for_screen (screen), "notify::gtk-application-prefer-dark-theme", G_CALLBACK (gtk_window_on_theme_variant_changed), window); #endif _gtk_widget_propagate_screen_changed (widget, previous_screen); - _gtk_widget_propagate_composited_changed (widget); } g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_SCREEN]); @@ -10271,16 +10256,6 @@ gtk_window_on_theme_variant_changed (GtkSettings *settings, } #endif -static void -gtk_window_on_composited_changed (GdkScreen *screen, - GtkWindow *window) -{ - GtkWidget *widget = GTK_WIDGET (window); - - gtk_widget_queue_draw (widget); - _gtk_widget_propagate_composited_changed (widget); -} - static GdkScreen * gtk_window_check_screen (GtkWindow *window) { diff --git a/tests/testgtk.c b/tests/testgtk.c index fadb05fe7f..85c14d33fc 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -222,10 +222,10 @@ build_alpha_widgets (void) } static void -on_composited_changed (GtkWidget *window, - GtkLabel *label) +on_composited_changed (GdkScreen *screen, + GtkLabel *label) { - gboolean is_composited = gtk_widget_is_composited (window); + gboolean is_composited = gdk_screen_is_composited (screen); if (is_composited) gtk_label_set_text (label, "Composited"); @@ -243,6 +243,7 @@ create_alpha_window (GtkWidget *widget) GtkWidget *content_area; GtkWidget *vbox; GtkWidget *label; + GdkScreen *screen; window = gtk_dialog_new_with_buttons ("Alpha Window", GTK_WINDOW (gtk_widget_get_toplevel (widget)), 0, @@ -264,8 +265,9 @@ create_alpha_window (GtkWidget *widget) label = gtk_label_new (NULL); gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE); - on_composited_changed (window, GTK_LABEL (label)); - g_signal_connect (window, "composited_changed", G_CALLBACK (on_composited_changed), label); + screen = gtk_widget_get_screen (window); + on_composited_changed (screen, GTK_LABEL (label)); + g_signal_connect (screen, "composited_changed", G_CALLBACK (on_composited_changed), label); gtk_box_pack_start (GTK_BOX (vbox), build_alpha_widgets (), TRUE, TRUE); -- 2.30.2